<template>
  <div id="app">
    <div class="nav">
      <h2>数据可视化</h2>
    </div>
    <div class="main">
      <div class="left_box">
        <div class="echart_wrap">
          <div class="title">统计表的Title</div>
          <div id="left_one" class="echart_box"></div>
        </div>
        <div class="echart_wrap">
          <div class="title">统计表的Title</div>
          <div id="left_two" class="echart_box"></div>
        </div>
        <div class="echart_wrap">
          <div class="title">统计表的Title</div>
          <div id="left_three" class="echart_box">
            <div id="left_three_one" class="echart_box_child"></div>
            <div id="left_three_two" class="echart_box_child"></div>
            <div id="left_three_three" class="echart_box_child"></div>
          </div>
        </div>
      </div>
      <div class="center_box">
        <div id="center_one">
          <div class="num">
            <span>152555</span>
            <span>252555</span>
          </div>
          <div class="year">
            <span>2022年总收入情况</span>
            <span>2022年总支出情况</span>
          </div>
        </div>

        <!-- <div class="echart_wrap"> -->
          <!-- <div class="title">统计表的Title</div> -->
          <div id="center_two" class="map_echart_box"></div>
        <!-- </div> -->


      </div>
      <div class="right_box">
        <div class="echart_wrap">
          <div class="title">统计表的Title</div>
          <div id="right_one" class="echart_box"></div>
        </div>
        <div class="echart_wrap">
          <div class="title">统计表的Title</div>
          <div id="right_two" class="echart_box"></div>
        </div>
        <div class="echart_wrap">
          <div class="title">统计表的Title</div>
          <div id="right_three" class="echart_box"></div>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import * as echarts from "echarts/core";
import './assets/js/china'
import { mapFun } from './assets/js/my_map'
import {
  TooltipComponent,
  GridComponent,
  TitleComponent,
  LegendComponent,
  GeoComponent
} from "echarts/components";
import { BarChart, PieChart, LineChart,LinesChart,EffectScatterChart } from "echarts/charts";
import { CanvasRenderer } from "echarts/renderers";

echarts.use([
  TooltipComponent,
  GridComponent,
  BarChart,
  CanvasRenderer,
  TitleComponent,
  LegendComponent,
  PieChart,
  LineChart,
  GeoComponent,LinesChart,EffectScatterChart
]);
export default {
  data() {
    return {
      leftOneData: {
        title: {
          // text: "收入收入收入统计统计统计",
          // left: 'center',
          // textStyle: {
          //   color: '#fff'
          // }
        },
        tooltip: {
          trigger: "axis",
          axisPointer: {
            type: "shadow",
          },
        },
        grid: {
          left: "0%",
          top: "10px",
          right: "0%",
          bottom: "4%",
          containLabel: true,
        },
        xAxis: [
          {
            type: "category",
            data: [
              "商超门店",
              "教育培训",
              "房地产",
              "生活服务",
              "汽车销售",
              "旅游酒店",
              "五金建材",
            ],
            axisLine: {
              show: true,
              lineStyle: {
                color: "rgba(255,255,255,.1)",
                width: 1,
                type: "solid",
              },
            },

            axisTick: {
              show: false,
            },
            axisLabel: {
              interval: 0,
              // rotate:50,
              show: true,
              splitNumber: 15,
              textStyle: {
                color: "rgba(255,255,255,.6)",
                fontSize: "12",
              },
            },
          },
        ],
        yAxis: [
          {
            type: "value",
            axisLabel: {
              //formatter: '{value} %'
              show: true,
              textStyle: {
                color: "rgba(255,255,255,.6)",
                fontSize: "12",
              },
            },
            axisTick: {
              show: false,
            },
            axisLine: {
              show: true,
              lineStyle: {
                color: "rgba(255,255,255,.1	)",
                width: 1,
                type: "solid",
              },
            },
            splitLine: {
              lineStyle: {
                color: "rgba(255,255,255,.1)",
              },
            },
          },
        ],
        series: [
          {
            type: "bar",
            data: [200, 300, 300, 900, 1500, 1200, 600],
            barWidth: "35%", //柱子宽度
            // barGap: 1, //柱子之间间距
            itemStyle: {
              normal: {
                color: "#2f89cf",
                opacity: 1,
                barBorderRadius: 5,
              },
            },
          },
        ],
      },
      leftTwoData: {
        //  backgroundColor: '#00265f',
        tooltip: {
          trigger: "axis",
          axisPointer: {
            type: "shadow",
          },
        },
        grid: {
          left: "0%",
          top: "10px",
          right: "0%",
          bottom: "4%",
          containLabel: true,
        },
        xAxis: [
          {
            type: "category",
            data: ["浙江", "上海", "江苏", "广东", "北京", "深圳", "安徽"],
            axisLine: {
              show: true,
              lineStyle: {
                color: "rgba(255,255,255,.1)",
                width: 1,
                type: "solid",
              },
            },

            axisTick: {
              show: false,
            },
            axisLabel: {
              interval: 0,
              // rotate:50,
              show: true,
              splitNumber: 15,
              textStyle: {
                color: "rgba(255,255,255,.6)",
                fontSize: "12",
              },
            },
          },
        ],
        yAxis: [
          {
            type: "value",
            axisLabel: {
              //formatter: '{value} %'
              show: true,
              textStyle: {
                color: "rgba(255,255,255,.6)",
                fontSize: "12",
              },
            },
            axisTick: {
              show: false,
            },
            axisLine: {
              show: true,
              lineStyle: {
                color: "rgba(255,255,255,.1	)",
                width: 1,
                type: "solid",
              },
            },
            splitLine: {
              lineStyle: {
                color: "rgba(255,255,255,.1)",
              },
            },
          },
        ],
        series: [
          {
            type: "bar",
            data: [1500, 1200, 600, 200, 300, 300, 900],
            barWidth: "35%", //柱子宽度
            // barGap: 1, //柱子之间间距
            itemStyle: {
              normal: {
                color: "#27d08a",
                opacity: 1,
                barBorderRadius: 5,
              },
            },
          },
        ],
      },
      leftThreeOneData: {
        title: [
          {
            text: "年龄分布",
            left: "center",
            textStyle: {
              color: "#fff",
              fontSize: "16",
            },
          },
        ],
        tooltip: {
          trigger: "item",
          formatter: "{a} <br/>{b}: {c} ({d}%)",
          position: function (p) {
            //其中p为当前鼠标的位置
            return [p[0] + 10, p[1] - 10];
          },
        },
        legend: {
          top: "70%",
          itemWidth: 10,
          itemHeight: 10,
          data: ["0岁以下", "20-29岁", "30-39岁", "40-49岁", "50岁以上"],
          textStyle: {
            color: "rgba(255,255,255,.5)",
            fontSize: "12",
          },
        },
        series: [
          {
            name: "年龄分布",
            type: "pie",
            center: ["50%", "42%"],
            radius: ["40%", "60%"],
            color: [
              "#065aab",
              "#066eab",
              "#0682ab",
              "#0696ab",
              "#06a0ab",
              "#06b4ab",
              "#06c8ab",
              "#06dcab",
              "#06f0ab",
            ],
            label: {
              show: false,
            },
            labelLine: {
              show: false,
            },
            data: [
              {
                value: 1,
                name: "0岁以下",
              },
              {
                value: 4,
                name: "20-29岁",
              },
              {
                value: 2,
                name: "30-39岁",
              },
              {
                value: 2,
                name: "40-49岁",
              },
              {
                value: 1,
                name: "50岁以上",
              },
            ],
          },
        ],
      },
      leftThreeTwoData: {
        title: [
          {
            text: "职业分布",
            left: "center",
            textStyle: {
              color: "#fff",
              fontSize: "16",
            },
          },
        ],
        tooltip: {
          trigger: "item",
          formatter: "{a} <br/>{b}: {c} ({d}%)",
          position: function (p) {
            //其中p为当前鼠标的位置
            return [p[0] + 10, p[1] - 10];
          },
        },
        legend: {
          top: "70%",
          itemWidth: 10,
          itemHeight: 10,
          data: ["电子商务", "教育", "IT/互联网", "金融", "学生", "其他"],
          textStyle: {
            color: "rgba(255,255,255,.5)",
            fontSize: "12",
          },
        },
        series: [
          {
            name: "年龄分布",
            type: "pie",
            center: ["50%", "42%"],
            radius: ["40%", "60%"],
            color: [
              "#065aab",
              "#066eab",
              "#0682ab",
              "#0696ab",
              "#06a0ab",
              "#06b4ab",
              "#06c8ab",
              "#06dcab",
              "#06f0ab",
            ],
            label: {
              show: false,
            },
            labelLine: {
              show: false,
            },
            data: [
              {
                value: 5,
                name: "电子商务",
              },
              {
                value: 1,
                name: "教育",
              },
              {
                value: 6,
                name: "IT/互联网",
              },
              {
                value: 2,
                name: "金融",
              },
              {
                value: 1,
                name: "学生",
              },
              {
                value: 1,
                name: "其他",
              },
            ],
          },
        ],
      },
      leftThreeThreeData: {
        title: [
          {
            text: "兴趣分布",
            left: "center",
            textStyle: {
              color: "#fff",
              fontSize: "16",
            },
          },
        ],
        tooltip: {
          trigger: "item",
          formatter: "{a} <br/>{b}: {c} ({d}%)",
          position: function (p) {
            //其中p为当前鼠标的位置
            return [p[0] + 10, p[1] - 10];
          },
        },
        legend: {
          top: "70%",
          itemWidth: 10,
          itemHeight: 10,
          data: ["汽车", "旅游", "财经", "教育", "软件", "其他"],
          textStyle: {
            color: "rgba(255,255,255,.5)",
            fontSize: "12",
          },
        },
        series: [
          {
            name: "兴趣分布",
            type: "pie",
            center: ["50%", "42%"],
            radius: ["40%", "60%"],
            color: [
              "#065aab",
              "#066eab",
              "#0682ab",
              "#0696ab",
              "#06a0ab",
              "#06b4ab",
              "#06c8ab",
              "#06dcab",
              "#06f0ab",
            ],
            label: {
              show: false,
            },
            labelLine: {
              show: false,
            },
            data: [
              {
                value: 2,
                name: "汽车",
              },
              {
                value: 3,
                name: "旅游",
              },
              {
                value: 1,
                name: "财经",
              },
              {
                value: 4,
                name: "教育",
              },
              {
                value: 8,
                name: "软件",
              },
              {
                value: 1,
                name: "其他",
              },
            ],
          },
        ],
      },
      rightOneData: {
        tooltip: {
          trigger: "axis",
          axisPointer: {
            lineStyle: {
              color: "#dddc6b",
            },
          },
        },
        legend: {
          top: "0%",
          data: ["安卓", "IOS"],
          textStyle: {
            color: "rgba(255,255,255,.5)",
            fontSize: "12",
          },
        },
        grid: {
          left: "10",
          top: "30",
          right: "10",
          bottom: "10",
          containLabel: true,
        },

        xAxis: [
          {
            type: "category",
            boundaryGap: false,
            axisLabel: {
              textStyle: {
                color: "rgba(255,255,255,.6)",
                fontSize: 12,
              },
            },
            axisLine: {
              lineStyle: {
                color: "rgba(255,255,255,.2)",
              },
            },

            data: [
              "01",
              "02",
              "03",
              "04",
              "05",
              "06",
              "07",
              "08",
              "09",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24",
            ],
          },
          {
            axisPointer: {
              show: false,
            },
            axisLine: {
              show: false,
            },
            position: "bottom",
            offset: 20,
          },
        ],

        yAxis: [
          {
            type: "value",
            axisTick: {
              show: false,
            },
            axisLine: {
              lineStyle: {
                color: "rgba(255,255,255,.1)",
              },
            },
            axisLabel: {
              textStyle: {
                color: "rgba(255,255,255,.6)",
                fontSize: 12,
              },
            },

            splitLine: {
              lineStyle: {
                color: "rgba(255,255,255,.1)",
              },
            },
          },
        ],
        series: [
          {
            name: "安卓",
            type: "line",
            smooth: true,
            symbol: "circle",
            symbolSize: 5,
            showSymbol: false,
            lineStyle: {
              normal: {
                color: "#0184d5",
                width: 2,
              },
            },
            areaStyle: {
              normal: {
                color: new echarts.graphic.LinearGradient(
                  0,
                  0,
                  0,
                  1,
                  [
                    {
                      offset: 0,
                      color: "rgba(1, 132, 213, 0.4)",
                    },
                    {
                      offset: 0.8,
                      color: "rgba(1, 132, 213, 0.1)",
                    },
                  ],
                  false
                ),
                shadowColor: "rgba(0, 0, 0, 0.1)",
              },
            },
            itemStyle: {
              normal: {
                color: "#0184d5",
                borderColor: "rgba(221, 220, 107, .1)",
                borderWidth: 12,
              },
            },
            data: [
              3, 4, 3, 4, 3, 4, 3, 6, 2, 4, 2, 4, 3, 4, 3, 4, 3, 4, 3, 6, 2, 4,
              2, 4,
            ],
          },
          {
            name: "IOS",
            type: "line",
            smooth: true,
            symbol: "circle",
            symbolSize: 5,
            showSymbol: false,
            lineStyle: {
              normal: {
                color: "#00d887",
                width: 2,
              },
            },
            areaStyle: {
              normal: {
                color: new echarts.graphic.LinearGradient(
                  0,
                  0,
                  0,
                  1,
                  [
                    {
                      offset: 0,
                      color: "rgba(0, 216, 135, 0.4)",
                    },
                    {
                      offset: 0.8,
                      color: "rgba(0, 216, 135, 0.1)",
                    },
                  ],
                  false
                ),
                shadowColor: "rgba(0, 0, 0, 0.1)",
              },
            },
            itemStyle: {
              normal: {
                color: "#00d887",
                borderColor: "rgba(221, 220, 107, .1)",
                borderWidth: 12,
              },
            },
            data: [
              5, 3, 5, 6, 1, 5, 3, 5, 6, 4, 6, 4, 8, 3, 5, 6, 1, 5, 3, 7, 2, 5,
              1, 4,
            ],
          },
        ],
      },
      rightTwoData: {
        //  backgroundColor: '#00265f',
        tooltip: {
          trigger: "axis",
          axisPointer: {
            type: "shadow",
          },
        },

        grid: {
          left: "0%",
          top: "10px",
          right: "0%",
          bottom: "2%",
          containLabel: true,
        },
        xAxis: [
          {
            type: "category",
            data: [
              "浙江",
              "上海",
              "江苏",
              "广东",
              "北京",
              "深圳",
              "安徽",
              "四川",
            ],
            axisLine: {
              show: true,
              lineStyle: {
                color: "rgba(255,255,255,.1)",
                width: 1,
                type: "solid",
              },
            },

            axisTick: {
              show: false,
            },
            axisLabel: {
              interval: 0,
              // rotate:50,
              show: true,
              splitNumber: 15,
              textStyle: {
                color: "rgba(255,255,255,.6)",
                fontSize: "12",
              },
            },
          },
        ],
        yAxis: [
          {
            type: "value",
            axisLabel: {
              //formatter: '{value} %'
              show: true,
              textStyle: {
                color: "rgba(255,255,255,.6)",
                fontSize: "12",
              },
            },
            axisTick: {
              show: false,
            },
            axisLine: {
              show: true,
              lineStyle: {
                color: "rgba(255,255,255,.1	)",
                width: 1,
                type: "solid",
              },
            },
            splitLine: {
              lineStyle: {
                color: "rgba(255,255,255,.1)",
              },
            },
          },
        ],
        series: [
          {
            type: "bar",
            data: [2, 3, 3, 9, 15, 12, 6, 4, 6, 7, 4, 10],
            barWidth: "35%", //柱子宽度
            // barGap: 1, //柱子之间间距
            itemStyle: {
              normal: {
                color: "#2f89cf",
                opacity: 1,
                barBorderRadius: 5,
              },
            },
          },
        ],
      },
      rightThreeData: {
        color: ["#0f63d6", "#0f78d6", "#0f8cd6", "#0fa0d6", "#0fb4d6"],
        tooltip: {
          show: true,
          formatter: "{a} : {c} ",
        },
        legend: {
          itemWidth: 10,
          itemHeight: 10,
          itemGap: 12,
          bottom: "3%",

          data: ["浙江", "上海", "广东", "北京", "深圳"],
          textStyle: {
            color: "rgba(255,255,255,.6)",
          },
        },

        series: [
          {
            name: "浙江",
            type: "pie",
            clockWise: false,
            center: ["50%", "42%"],
            radius: ["59%", "70%"],
            itemStyle: {
              normal: {
                label: {
                  show: false,
                },
                labelLine: {
                  show: false,
                },
                //shadowBlur: 40,
                //shadowColor: 'rgba(40, 40, 40, 1)',
              },
            },
            hoverAnimation: false,
            data: [
              {
                value: 80,
                name: "01",
              },
              {
                value: 20,
                name: "invisible",
                tooltip: {
                  show: false,
                },
                itemStyle: {
                  normal: {
                    color: "rgba(255,255,255,.05)",
                    label: {
                      show: false,
                    },
                    labelLine: {
                      show: false,
                    },
                  },
                  emphasis: {
                    color: "rgba(0,0,0,0)",
                  },
                },
              },
            ],
          },
          {
            name: "上海",
            type: "pie",
            clockWise: false,
            center: ["50%", "42%"],
            radius: ["49%", "60%"],
            itemStyle: {
              normal: {
                label: {
                  show: false,
                },
                labelLine: {
                  show: false,
                },
                //shadowBlur: 40,
                //shadowColor: 'rgba(40, 40, 40, 1)',
              },
            },
            hoverAnimation: false,
            data: [
              {
                value: 70,
                name: "02",
              },
              {
                value: 30,
                name: "invisible",
                tooltip: {
                  show: false,
                },
                itemStyle: {
                  normal: {
                    color: "rgba(255,255,255,.05)",
                    label: {
                      show: false,
                    },
                    labelLine: {
                      show: false,
                    },
                  },
                  emphasis: {
                    color: "rgba(0,0,0,0)",
                  },
                },
              },
            ],
          },
          {
            name: "广东",
            type: "pie",
            clockWise: false,
            hoverAnimation: false,
            center: ["50%", "42%"],
            radius: ["39%", "50%"],
            itemStyle: {
              normal: {
                label: {
                  show: false,
                },
                labelLine: {
                  show: false,
                },
                //shadowBlur: 40,
                //shadowColor: 'rgba(40, 40, 40, 1)',
              },
            },
            data: [
              {
                value: 65,
                name: "03",
              },
              {
                value: 35,
                name: "invisible",
                tooltip: {
                  show: false,
                },
                itemStyle: {
                  normal: {
                    color: "rgba(255,255,255,.05)",
                    label: {
                      show: false,
                    },
                    labelLine: {
                      show: false,
                    },
                  },
                  emphasis: {
                    color: "rgba(0,0,0,0)",
                  },
                },
              },
            ],
          },
          {
            name: "北京",
            type: "pie",
            clockWise: false,
            hoverAnimation: false,
            center: ["50%", "42%"],
            radius: ["29%", "40%"],
            itemStyle: {
              normal: {
                label: {
                  show: false,
                },
                labelLine: {
                  show: false,
                },
                //shadowBlur: 40,
                //shadowColor: 'rgba(40, 40, 40, 1)',
              },
            },
            data: [
              {
                value: 60,
                name: "04",
              },
              {
                value: 40,
                name: "invisible",
                tooltip: {
                  show: false,
                },
                itemStyle: {
                  normal: {
                    color: "rgba(255,255,255,.05)",
                    label: {
                      show: false,
                    },
                    labelLine: {
                      show: false,
                    },
                  },
                  emphasis: {
                    color: "rgba(0,0,0,0)",
                  },
                },
              },
            ],
          },
          {
            name: "深圳",
            type: "pie",
            clockWise: false,
            hoverAnimation: false,
            center: ["50%", "42%"],
            radius: ["20%", "30%"],
            itemStyle: {
              normal: {
                label: {
                  show: false,
                },
                labelLine: {
                  show: false,
                },
                //shadowBlur: 40,
                //shadowColor: 'rgba(40, 40, 40, 1)',
              },
            },
            data: [
              {
                value: 50,
                name: "05",
              },
              {
                value: 50,
                name: "invisible",
                tooltip: {
                  show: false,
                },
                itemStyle: {
                  normal: {
                    color: "rgba(255,255,255,.05)",
                    label: {
                      show: false,
                    },
                    labelLine: {
                      show: false,
                    },
                  },
                  emphasis: {
                    color: "rgba(0,0,0,0)",
                  },
                },
              },
            ],
          },
        ],
      },
    };
  },
  mounted() {
    this.loadECharts();
  },
  methods: {
    loadECharts() {
      // 左边布局的 echarts
      const left_one_dom = document.getElementById("left_one");
      const left_two_dom = document.getElementById("left_two");
      const left_three_one_dom = document.getElementById("left_three_one");
      const left_three_two_dom = document.getElementById("left_three_two");
      const left_three_three_dom = document.getElementById("left_three_three");
      const myChart1 = echarts.init(left_one_dom);
      const myChart2 = echarts.init(left_two_dom);
      const myChart3 = echarts.init(left_three_one_dom);
      const myChart4 = echarts.init(left_three_two_dom);
      const myChart5 = echarts.init(left_three_three_dom);
      myChart1.setOption(this.leftOneData);
      myChart2.setOption(this.leftTwoData);
      myChart3.setOption(this.leftThreeOneData);
      myChart4.setOption(this.leftThreeTwoData);
      myChart5.setOption(this.leftThreeThreeData);
      // 右边布局的 echarts
      const right_one_dom = document.getElementById("right_one");
      const right_two_dom = document.getElementById("right_two");
      const right_three_dom = document.getElementById("right_three");
      const myChart6 = echarts.init(right_one_dom);
      const myChart7 = echarts.init(right_two_dom);
      const myChart8 = echarts.init(right_three_dom);
      myChart6.setOption(this.rightOneData);
      myChart7.setOption(this.rightTwoData);
      myChart8.setOption(this.rightThreeData);
      // 中间的地图
      const conter_two_dom = document.getElementById("center_two");
      const myChart9 = echarts.init(conter_two_dom);
      myChart9.setOption(mapFun());
    },
  },
};
</script>

<style lang="less">
@font-face {
  font-family: electronicFont;
  src: url("./assets/font/DS-DIGIT.TTF");
} // 数字时钟字体

.echart_wrap {
  background-color: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(25, 186, 139, 0.17);
  border-radius: 5px;
  width: 89%;
  padding: 0 5%;
  margin-bottom: 2%;
  height: 29vh;
  .title {
    height: 3vh;
    line-height: 3vh;
    text-align: center;
    color: #fff;
    font-size: 22px;
  }
  .echart_box {
    width: 100%;
    // margin-left: 5%;
    height: 25vh;
    display: flex;
    .echart_box_child {
      height: 100%;
      width: 33%;
    }
  }
}

.map_echart_box{
  margin-top: 10vh;
  width: 100%;
  height: 60vh;
}

#app {
  background: url("./assets/bg.jpg") 100% 100%;
  .nav {
    background: url("./assets/head_bg.png") 100% 100%;
    height: 9vh;
    line-height: 9vh;
    h2 {
      font-size: 40px;
      text-align: center;
      color: #fff;
      margin: 0;
    }
  }
  .main {
    display: flex;
    padding: 0 1vw;
    height: 91vh;
    .left_box {
      width: 32vw;
    }
    .center_box {
      width: 36vw;
      #center_one {
        margin: 0 auto;
        width: 80%;
        height: 10vh;
        background-color: rgba(101, 132, 226, 0.1);
        padding: 10px 20px;
        .num {
          border: 1px solid rgba(25, 186, 139, 0.17);
          font-size: 60px;
          display: flex;
          justify-content: space-between;
          color: #ffeb7b;
          font-family: electronicFont;
          span {
            padding: 0 3vw;
          }
        }
        .year {
          margin-top: 5px;
          display: flex;
          justify-content: space-between;
          font-size: 18px;
          color: rgba(255, 255, 255, 0.7);
          span {
            padding: 0 3vw;
          }
        }
      }
    }
    .right_box {
      width: 32vw;
    }
  }
}
</style>
